/*
 * 文件名：WebSoceketClient.java	 
 * 时     间：上午10:32:19
 * 作     者：lyf       
 * 版     权： 2012-2022 湖南智软网络科技, 公司保留所有权利.
 * 联     系：http://www.073586.com/
 */
package com.cz073586.message.websocket356.client;

import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;

import com.cz073586.message.websocket356.converts.MessageDecoder;
import com.cz073586.message.websocket356.converts.MessageEncoder;
import com.cz073586.message.websocket356.transfer.TransferVo;
import com.cz073586.tools.util.Log4jUtil;

/**
 * 类描述:这里是类描述
 * 
 * @ClassName: WebSoceketClient
 * @author lyf
 * @date 2015年7月21日 上午10:32:19
 */
@ClientEndpoint(encoders = MessageEncoder.class, decoders = MessageDecoder.class)
public class WebSoceketClient
{
	private final static Log4jUtil log = Log4jUtil
			.getLog4j(WebSoceketClient.class);
	
	/**
	 * 
	 * 方法描述： 客户端连接
	 * 
	 * @Title: onOpenConnect
	 * @param @param session
	 * @return void
	 * @user lyf 2015年7月21日
	 * @throws
	 */
	@OnOpen
	public void onOpenConnect(Session session)
	{
		if (log.isDebugEnabled())
		{
			log.info("client of WebSocket opened: " + session.getId());
		}
	}
	
	@OnMessage
	public TransferVo<?> onMessage(Session session, TransferVo<?> msg)
	{
		if (log.isDebugEnabled())
		{
			log.info("client WebSocket received message:  " + msg.getKeyWord());
		}
		return msg;
	}
	
	/**
	 * 
	 * 方法描述： 连接关闭
	 * 
	 * @Title: onClose
	 * @param @param session
	 * @param @param reason
	 * @return void
	 * @user lyf 2015年7月21日
	 * @throws
	 */
	public void onClose(Session session, CloseReason reason)
	{
		if (log.isDebugEnabled())
		{
			log.info("client Closing a WebSocket due to " + session.getId());
		}
	}
	
	@OnError
	public void onError(Session session, Throwable throwable)
	{
		log.error("client of websocket is mistaked:", throwable);
	}
}
